package edu.javaclub;
//!有问题 9781
/**
 * 029. 独特的幂
 * 对于 2≤a≤5 和 2≤b≤5，考虑所有的整数 a 和 b 的组合 a
 * b，如下：
 * 如果把上面的结果按照数字顺序从小到大排列并去掉所有重复的数字，我们可以得到以下有
 * 15 个不同数字的序列：
 * 4,8,9,16,25,27,32,64,81,125,243,256,625,1024,3125
 * 求对于 2≤a≤100 和 2≤b≤100，a
 * b会产生的序列中的有多少个不同的数字？
 * 答案：9183
 */
public class work029 {
    public static void main(String[] args) {
        int N=101;
        int sum=0;
        long [][]Num=new long[99][99];
        for(int i=2;i<N;i++){
            for(int j=2;j<N;j++){
                Num[i-2][j-2]= (long) Math.pow(i,j);
            }
        }
        for(int i=2;i<N;i++){
            for(int j=2;j<N;j++){
                for(int ii=i+1;ii<N;ii++){
                    for(int jj=2;jj<N;jj++){
                        if(Num[i-2][j-2]==Num[ii-2][jj-2]){
                            Num[i-2][j-2]=0;
                            break;
                        }
                        if(Num[i-2][j-2]>Num[ii-2][jj-2]){
                            break;
                        }
                    }
                }
            }
        }
        for(int i=2;i<N;i++){
            for(int j=2;j<N;j++){
              //  System.out.print(Num[i-2][j-2]+" ");
                if(Num[i-2][j-2]!=0){
                    sum++;
                }
            }
           // System.out.println("");
        }
        System.out.println(sum);
    }
}
